Implementing and interpolating rotations of n-dimensional objects and virtual n-dimensional objects are important tools within computer graphics, animation, and robotics (and among other fields and applications).
There are many methods well-known in computer graphics for implementing a three-dimensional rotation RεSO(3) specified by two-dimensional user input from various controllers such as, for example, a joystick, a trackball, a touchpad, a pen tablet, or a mouse. Many of these algorithms are typically based on a dynamic mapping of the position of the controller to a unit vector in  Such a mapping converts the current position of the controller to a unit vector u0ε and when that position is moved, the new position is converted to a second unit vector u1ε . For an object on the display device (e.g., a computer screen) to follow the mouse naturally, as if it were being dragged, one must perform a rotation ρ on it satisfying u1:=ρu0. However, there are infinitely many such rotations, since one could also perform any rotation about u0, followed by ρ, followed by any rotation about u1, and still have u0 map to u1. However, if u1≠−u0, there is a single unique rotation that takes u0 to u1 and that acts as the identity on the orthogonal complement of V:=span{u0, u1}. It is this rotation that is conventionally specified by giving a unit vector and its image, and it is called the transvection taking u0 to u1, denoted T(u0, u1). Note that, by orthogonality, T(u0, u1) preserves V.
In the computer graphics literature, a number of different methods have been recommended for implementing T(u0, u1), including: construction of a rotation matrix, using axis-angle (e.g., Euler-Rodrigues) formulas, construction of a unit quaternion, Q, and then conjugating by Q or else converting Q to a matrix, and even using Euler angles. Similar needs for specifying, implementing, and composing rotations, and proposed solutions in terms of quaternion and matrices also arise in other fields, including robotics, photogrammetry, and rocket motion control.
Each of the techniques that are currently known and which have been applied have disadvantages, including (but not limited to) the amount and complexity of computational resources and computational time which may be necessary for performing the requisite calculations.